package com.mrjy.maintain.bo;

import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import com.mrjy.common.entity.SMSSendInfo;
import com.mrjy.common.entity.SalesCardInfo;
import com.mrjy.common.entity.UserInfo;

public interface ISalesCardInfoBo {

	SalesCardInfo queryById(int id,UserInfo userInfo);
	
	/**
	 * 激活销售卡
	 * @param salesCardInfo	
	 * @param smsSendDto
	 * @return
	 */
	Map<String, Object> activateSaleCard(SalesCardInfo salesCardInfo,SMSSendInfo smsSendInfo);
	
	
	List<SalesCardInfo> getCardStatus();
	
	/**
	 * 后台分页查询
	 * @param cardInfo
	 * @return
	 */
	Map<String, Object> getCardByPageBack(SalesCardInfo cardInfo,UserInfo userInfo);
	
	/**
	 * 批量导出
	 * @param cardInfo
	 * @param userInfo
	 * @return
	 */
	Object exportCard(SalesCardInfo cardInfo,UserInfo userInfo,HttpServletResponse response);
	/**
	 * 批量生成销售卡
	 * @param salesCardInfo
	 * @return
	 */
	Object txGenerateCardBatch(SalesCardInfo salesCardInfo,UserInfo userInfo);
	
	/**
	 * 更新销售卡信息
	 * @param salesCardInfo
	 * @param userInfo
	 * @return
	 */
	String updateSalesCard(SalesCardInfo salesCardInfo,UserInfo userInfo);
	
	/**
	 * 批量起用禁用
	 * @param salesCardInfo
	 * @param userInfo
	 * @return
	 */
	Object updateDisableFlag(SalesCardInfo salesCardInfo,UserInfo userInfo);
	/**
	 * 激活福卡
	 * @param userName
	 * @param mobilePhone
	 * @param password
	 * @param validcode
	 * @param fuCardCode
	 * @return
	 */
	public Map<String, Object> txActivateSaleCard(String userName, String mobilePhone,
			String password, String validcode, String fuCardCode);
	/**
	 * 激活福卡
	 * @param openId
	 * @param mobilePhone
	 * @param validcode
	 * @param fuCardCode
	 * @param typeId 
	 * @return
	 */
	public Map<String, Object> txActivateFuCardByOpenId(String openId,
			String mobilePhone, String validcode, String fuCardCode, Integer typeId);


    /**
     * 激活福卡
     *
     * @param userName
     * @param mobilePhone
     * @param password
     * @param validcode
     * @param fuCardCode
     * @param typeId
     * @return
     */
    public Map<String, Object> txActivateSaleCardPC(String userName, String mobilePhone,
                                                    String password, String validcode, String fuCardCode, int typeId);

	/**
	 * 获取福卡总数,福卡总价值,总激活数,总激活金额
	 * @param salesCardInfo
	 * @return
	 */
	Object getTotal(SalesCardInfo salesCardInfo);

	Object exportExl(SalesCardInfo salesCardInfo, HttpServletResponse response, HttpSession session);

	Object generateSingleCode(SalesCardInfo info, Map<String, Object> map);

}
